
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>32.9. pyclbr — Python class browser support &#8212; Python 3.6.3 documentation</title>
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '3.6.3',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    <link rel="search" type="application/opensearchdescription+xml"
          title="Search within Python 3.6.3 documentation"
          href="../_static/opensearch.xml"/>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="copyright" title="Copyright" href="../copyright.html" />
    <link rel="next" title="32.10. py_compile — Compile Python source files" href="py_compile.html" />
    <link rel="prev" title="32.8. tabnanny — Detection of ambiguous indentation" href="tabnanny.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
    <link rel="canonical" href="https://docs.python.org/3/library/pyclbr.html" />
    
    <script type="text/javascript" src="../_static/copybutton.js"></script>
    <script type="text/javascript" src="../_static/switchers.js"></script>
    
    
 

  </head>
  <body>  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="py_compile.html" title="32.10. py_compile — Compile Python source files"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="tabnanny.html" title="32.8. tabnanny — Detection of ambiguous indentation"
             accesskey="P">previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <span class="language_switcher_placeholder">en</span>
          <span class="version_switcher_placeholder">3.6.3</span>
          <a href="../index.html">Documentation </a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="language.html" accesskey="U">32. Python Language Services</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="Quick search" type="text" name="q" />
          <input type="submit" value="Go" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>    

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="module-pyclbr">
<span id="pyclbr-python-class-browser-support"></span><h1>32.9. <a class="reference internal" href="#module-pyclbr" title="pyclbr: Supports information extraction for a Python class browser."><code class="xref py py-mod docutils literal"><span class="pre">pyclbr</span></code></a> — Python class browser support<a class="headerlink" href="#module-pyclbr" title="Permalink to this headline">¶</a></h1>
<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.6/Lib/pyclbr.py">Lib/pyclbr.py</a></p>
<hr class="docutils" />
<p>The <a class="reference internal" href="#module-pyclbr" title="pyclbr: Supports information extraction for a Python class browser."><code class="xref py py-mod docutils literal"><span class="pre">pyclbr</span></code></a> module can be used to determine some limited information
about the classes, methods and top-level functions defined in a module.  The
information provided is sufficient to implement a traditional three-pane
class browser.  The information is extracted from the source code rather
than by importing the module, so this module is safe to use with untrusted
code.  This restriction makes it impossible to use this module with modules
not implemented in Python, including all standard and optional extension
modules.</p>
<dl class="function">
<dt id="pyclbr.readmodule">
<code class="descclassname">pyclbr.</code><code class="descname">readmodule</code><span class="sig-paren">(</span><em>module</em>, <em>path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyclbr.readmodule" title="Permalink to this definition">¶</a></dt>
<dd><p>Read a module and return a dictionary mapping class names to class
descriptor objects.  The parameter <em>module</em> should be the name of a
module as a string; it may be the name of a module within a package.  The
<em>path</em> parameter should be a sequence, and is used to augment the value
of <code class="docutils literal"><span class="pre">sys.path</span></code>, which is used to locate module source code.</p>
</dd></dl>

<dl class="function">
<dt id="pyclbr.readmodule_ex">
<code class="descclassname">pyclbr.</code><code class="descname">readmodule_ex</code><span class="sig-paren">(</span><em>module</em>, <em>path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyclbr.readmodule_ex" title="Permalink to this definition">¶</a></dt>
<dd><p>Like <a class="reference internal" href="#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal"><span class="pre">readmodule()</span></code></a>, but the returned dictionary, in addition to
mapping class names to class descriptor objects, also maps top-level
function names to function descriptor objects.  Moreover, if the module
being read is a package, the key <code class="docutils literal"><span class="pre">'__path__'</span></code> in the returned
dictionary has as its value a list which contains the package search
path.</p>
</dd></dl>

<div class="section" id="class-objects">
<span id="pyclbr-class-objects"></span><h2>32.9.1. Class Objects<a class="headerlink" href="#class-objects" title="Permalink to this headline">¶</a></h2>
<p>The <code class="xref py py-class docutils literal"><span class="pre">Class</span></code> objects used as values in the dictionary returned by
<a class="reference internal" href="#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal"><span class="pre">readmodule()</span></code></a> and <a class="reference internal" href="#pyclbr.readmodule_ex" title="pyclbr.readmodule_ex"><code class="xref py py-func docutils literal"><span class="pre">readmodule_ex()</span></code></a> provide the following data
attributes:</p>
<dl class="attribute">
<dt id="pyclbr.Class.module">
<code class="descclassname">Class.</code><code class="descname">module</code><a class="headerlink" href="#pyclbr.Class.module" title="Permalink to this definition">¶</a></dt>
<dd><p>The name of the module defining the class described by the class descriptor.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.name">
<code class="descclassname">Class.</code><code class="descname">name</code><a class="headerlink" href="#pyclbr.Class.name" title="Permalink to this definition">¶</a></dt>
<dd><p>The name of the class.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.super">
<code class="descclassname">Class.</code><code class="descname">super</code><a class="headerlink" href="#pyclbr.Class.super" title="Permalink to this definition">¶</a></dt>
<dd><p>A list of <code class="xref py py-class docutils literal"><span class="pre">Class</span></code> objects which describe the immediate base
classes of the class being described.  Classes which are named as
superclasses but which are not discoverable by <a class="reference internal" href="#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal"><span class="pre">readmodule()</span></code></a> are
listed as a string with the class name instead of as <code class="xref py py-class docutils literal"><span class="pre">Class</span></code>
objects.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.methods">
<code class="descclassname">Class.</code><code class="descname">methods</code><a class="headerlink" href="#pyclbr.Class.methods" title="Permalink to this definition">¶</a></dt>
<dd><p>A dictionary mapping method names to line numbers.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.file">
<code class="descclassname">Class.</code><code class="descname">file</code><a class="headerlink" href="#pyclbr.Class.file" title="Permalink to this definition">¶</a></dt>
<dd><p>Name of the file containing the <code class="docutils literal"><span class="pre">class</span></code> statement defining the class.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.lineno">
<code class="descclassname">Class.</code><code class="descname">lineno</code><a class="headerlink" href="#pyclbr.Class.lineno" title="Permalink to this definition">¶</a></dt>
<dd><p>The line number of the <code class="docutils literal"><span class="pre">class</span></code> statement within the file named by
<a class="reference internal" href="#pyclbr.Class.file" title="pyclbr.Class.file"><code class="xref py py-attr docutils literal"><span class="pre">file</span></code></a>.</p>
</dd></dl>

</div>
<div class="section" id="function-objects">
<span id="pyclbr-function-objects"></span><h2>32.9.2. Function Objects<a class="headerlink" href="#function-objects" title="Permalink to this headline">¶</a></h2>
<p>The <code class="xref py py-class docutils literal"><span class="pre">Function</span></code> objects used as values in the dictionary returned by
<a class="reference internal" href="#pyclbr.readmodule_ex" title="pyclbr.readmodule_ex"><code class="xref py py-func docutils literal"><span class="pre">readmodule_ex()</span></code></a> provide the following attributes:</p>
<dl class="attribute">
<dt id="pyclbr.Function.module">
<code class="descclassname">Function.</code><code class="descname">module</code><a class="headerlink" href="#pyclbr.Function.module" title="Permalink to this definition">¶</a></dt>
<dd><p>The name of the module defining the function described by the function
descriptor.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.name">
<code class="descclassname">Function.</code><code class="descname">name</code><a class="headerlink" href="#pyclbr.Function.name" title="Permalink to this definition">¶</a></dt>
<dd><p>The name of the function.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.file">
<code class="descclassname">Function.</code><code class="descname">file</code><a class="headerlink" href="#pyclbr.Function.file" title="Permalink to this definition">¶</a></dt>
<dd><p>Name of the file containing the <code class="docutils literal"><span class="pre">def</span></code> statement defining the function.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.lineno">
<code class="descclassname">Function.</code><code class="descname">lineno</code><a class="headerlink" href="#pyclbr.Function.lineno" title="Permalink to this definition">¶</a></dt>
<dd><p>The line number of the <code class="docutils literal"><span class="pre">def</span></code> statement within the file named by
<a class="reference internal" href="#pyclbr.Function.file" title="pyclbr.Function.file"><code class="xref py py-attr docutils literal"><span class="pre">file</span></code></a>.</p>
</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">32.9. <code class="docutils literal"><span class="pre">pyclbr</span></code> — Python class browser support</a><ul>
<li><a class="reference internal" href="#class-objects">32.9.1. Class Objects</a></li>
<li><a class="reference internal" href="#function-objects">32.9.2. Function Objects</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="tabnanny.html"
                        title="previous chapter">32.8. <code class="docutils literal"><span class="pre">tabnanny</span></code> — Detection of ambiguous indentation</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="py_compile.html"
                        title="next chapter">32.10. <code class="docutils literal"><span class="pre">py_compile</span></code> — Compile Python source files</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../bugs.html">Report a Bug</a></li>
      <li>
        <a href="https://github.com/python/cpython/blob/3.6/Doc/library/pyclbr.rst"
            rel="nofollow">Show Source
        </a>
      </li>
    </ul>
  </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="py_compile.html" title="32.10. py_compile — Compile Python source files"
             >next</a> |</li>
        <li class="right" >
          <a href="tabnanny.html" title="32.8. tabnanny — Detection of ambiguous indentation"
             >previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <span class="language_switcher_placeholder">en</span>
          <span class="version_switcher_placeholder">3.6.3</span>
          <a href="../index.html">Documentation </a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="language.html" >32. Python Language Services</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="Quick search" type="text" name="q" />
          <input type="submit" value="Go" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>  
    <div class="footer">
    &copy; <a href="../copyright.html">Copyright</a> 2001-2017, Python Software Foundation.
    <br />
    The Python Software Foundation is a non-profit corporation.
    <a href="https://www.python.org/psf/donations/">Please donate.</a>
    <br />
    Last updated on Oct 14, 2017.
    <a href="../bugs.html">Found a bug</a>?
    <br />
    Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.6.4.
    </div>

  </body>
</html>